"""
创建超级管理员账号
"""
from app.core.database import SessionLocal
from app.models.user import User
from app.core.security import get_password_hash
from app.utils.helpers import generate_id

def create_super_admin():
    db = SessionLocal()
    
    try:
        # 检查是否已存在超级管理员
        existing_admin = db.query(User).filter(User.role == "super_admin").first()
        if existing_admin:
            print(f"⚠️  超级管理员已存在: {existing_admin.phone}")
            return
        
        # 创建超级管理员
        phone = input("请输入手机号: ").strip()
        password = input("请输入密码: ").strip()
        nick_name = input("请输入昵称 (默认: 超级管理员): ").strip() or "超级管理员"
        
        if not phone or not password:
            print("❌ 手机号和密码不能为空")
            return
        
        # 检查手机号是否已被使用
        existing_user = db.query(User).filter(User.phone == phone).first()
        if existing_user:
            print(f"❌ 手机号 {phone} 已被注册")
            # 询问是否升级为超级管理员
            upgrade = input("是否将该用户升级为超级管理员？(y/n): ").strip().lower()
            if upgrade == 'y':
                existing_user.role = "super_admin"
                db.commit()
                print(f"✅ 用户 {phone} 已升级为超级管理员！")
            return
        
        admin = User(
            id=generate_id(),
            nick_name=nick_name,
            phone=phone,
            password=get_password_hash(password),
            role="super_admin",
            avatar=None,
            city_name="乌鲁木齐市"
        )
        
        db.add(admin)
        db.commit()
        
        print("\n✅ 超级管理员创建成功！")
        print(f"   ID: {admin.id}")
        print(f"   昵称: {admin.nick_name}")
        print(f"   手机号: {admin.phone}")
        print(f"   角色: {admin.role}")
        print("\n🔐 请妥善保管登录信息！")
        
    except Exception as e:
        print(f"❌ 创建失败: {e}")
        db.rollback()
    finally:
        db.close()

if __name__ == "__main__":
    print("=" * 50)
    print("   足球场管理系统 - 创建超级管理员")
    print("=" * 50)
    print()
    create_super_admin()

